package com.tywj.module.h5.route

import androidx.fragment.app.FragmentActivity

import com.tywj.lib.core.common.view.BaseFragment
import com.tywj.lib.route.RouteNavigation
import com.tywj.module.h5.base.MyWebViewActivity

/**
 * @desc H5组件Native路由
 * @author June Yang
 * @date 2018/4/17
 */
object H5Route {
    // 通用webApp交互Activity
    const val H5_ACTIVITY = "/h5/activity"

    // 通用webApp交互Fragment
    const val H5_FRAGMENT = "/h5/fragment"

    // H5组件服务
    const val H5_SERVICE = "/h5/service"

    /**
     * 跳转至H5Activity
     * @param indexUrl H5页面url地址
     * @param titleBgColor 标题栏背景颜色
     * @param h5Data 使用utimesData方法，传递给H5页面的数据
     * @param fromPage 当前页面描述，用来告诉H5页面，是哪一个Native页面访问的该H5页面
     * @return 路由导航
     */
    fun toH5Activity(
        indexUrl: String, title: String, titleBgColor: Int, h5Data: String, fromPage: String,
        isShowCloseView: Boolean = true
    ): RouteNavigation {
        return RouteNavigation(H5_ACTIVITY)
            .param(MyWebViewActivity.PARAMS_URL, indexUrl)
            .param(MyWebViewActivity.PARAMS_TITLE, title)
            .param("titleBgColor", titleBgColor)
            .param("h5Data", h5Data)
            .param("fromPage", fromPage)
            .param("isShowCloseView", isShowCloseView)
    }

    /**
     * 获取H5Fragment
     * @param activity Activity对象
     * @param indexUrl H5页面url地址
     * @param titleBgColor 标题栏背景颜色
     * @param h5Data 使用utimesData方法，传递给H5页面的数据
     * @param fromPage 当前页面描述，用来告诉H5页面，是哪一个Native页面访问的该H5页面
     * @return H5Fragment
     */
    fun getH5Fragment(
        activity: FragmentActivity, indexUrl: String, titleBgColor: Int, h5Data: String,
        fromPage: String
    ): BaseFragment {
        return RouteNavigation(H5_FRAGMENT)
            .param("indexUrl", indexUrl)
            .param("titleBgColor", titleBgColor)
            .param("h5Data", h5Data)
            .param("fromPage", fromPage)
            .navigation(activity) as BaseFragment
    }

    /**
     * 用户协议
     */
//    fun toUserAgreement(): RouteNavigation? {
//        return RouteUtil.getServiceProvider(IH5Service::class.java)
//            ?.toH5Activity(
//                indexUrl = USER_AGREEMENT,
//                titleBgColor = ResourcesUtil.getColor(R.color.common_black_1F),
//                isShowCloseView = false
//            )
//    }
//
//    /**
//     * 隐私条款
//     */
//    fun toPrivacyAgreement(): RouteNavigation? {
//        return RouteUtil.getServiceProvider(IH5Service::class.java)
//            ?.toH5Activity(
//                indexUrl = PRIVACY_AGREEMENT,
//                titleBgColor = ResourcesUtil.getColor(R.color.common_black_1F),
//                isShowCloseView = false
//            )
//    }
}